Systems and methods for generalized structured data discovery utilizing contextual metadata disambiguation via machine learning techniques

ABSTRACT

A method for generalized structured data discovery may include (1) receiving physical application metadata from data sources for an attribute, a database object, or a database; (2) receiving reference data comprising a plurality of tokens and their associated abbreviations/acronyms; (3) parsing the physical application metadata into a application tokens comprising known and unknown application tokens; (4) identifying unknown application tokens by comparing the parsed application tokens to a corpus; (5) performing probabilistic parsing on the unknown application tokens using the reference data; (6) performing bi-directional encoding to expand the polysemous tokens to relevant expressions using the reference data; (7) applying language tokens to the relevant expressions in the expanded polysemous tokens to disambiguate the relevant expressions; and (8) outputting a mapping of the physical application metadata to enhanced physical application metadata, wherein the enhanced physical application metadata comprises an expression for the physical application metadata in a supported language.

BACKGROUND OF THE INVENTION 1. Field of the Invention

Embodiments are generally related to systems and methods for generalizedstructured data discovery utilizing contextual metadata disambiguationvia machine learning techniques.

2. Description of the Related Art

Large multi-national enterprises own a large number of applications anddatabases collected over the years through acquisition and driven bycontinuously changing business requirements. Each of these applicationshave been built using a highly optimized language tuned for the specificbusiness problem they were created to solve. In the past, the usercommunity of an application and dataset were known, and any ambiguityaround data structures, sensitivity, and regulations were handled by theapplication developers.

In the past decade, there has been a heightened regulatory environment.Combined with data migrating to data lakes, clouds, and machine learningprojects, there are many new stakeholders both inside and outside of theorganization who need to understand data in order to make decisions.Some examples include: is any of the data in the dataset sensitive;where is data of a given type being produced and consumed; how is thedata moving through the organization or out of the organization; doesthe organization maintain duplicates of the same data; is the datasubject to legal hold or record retention regulations; how does theorganization shed light on “dark pools” of data which could be criticalto further business objectives; etc.

In the past, data profiling products have been used to reverse engineerdata sets in order to document them for data sensitivity, regulatoryasks, and for efficiency. The sheer volume of data involved makes thisapproach impractical for large organizations, as it is not unusual forthere to be tens of thousands of databases representing petabytes ofdata. Using a deep profiling tool, it would take over a decade tocomprehensively process this much data. Even worse, by the time theprofiling exercise was complete, the underlying data would have changedto such an extent that the inventory would have little ongoing value.

Due to these challenges, organizations have relied on application ownersto manually certify their data periodically from stored documentation,models, and source code. The challenges with the “manual method” isconsistency, freshness, and compliance. It is risky to have manydifferent application owners interpreting constantly changing privacystandards. In addition, application teams change and evolve over time,new members of the team may not even realize what they are certifying.Over time “dark pools” of data develop. Lastly, application teams arevery busy solving business problems and may feel pressure to placecompliance tasks onto the backlog.

SUMMARY OF THE INVENTION

Systems and methods for generalized structured data discovery utilizingcontextual metadata disambiguation via machine learning techniques aredisclosed. According to one embodiment, in an information processingapparatus comprising at least one computer processor, a method forgeneralized structured data discovery utilizing contextual metadatadisambiguation via machine learning techniques may include: (1)receiving physical application metadata from one or more data sourcesfor an attribute, a database object, or a database; (2) receivingreference data comprising a plurality of tokens and their associatedabbreviations and acronyms; (3) parsing the physical applicationmetadata into a plurality of application tokens comprising knownapplication tokens and unknown application tokens; (4) identifyingunknown application tokens by comparing the parsed application tokens toa corpus; (5) performing probabilistic parsing on the unknownapplication tokens using the reference data; (6) performingbi-directional encoding on polysemous unknown application tokens toexpand the polysemous tokens to relevant expressions using the referencedata; (7) applying language tokens to the relevant expressions in theexpanded polysemous tokens to disambiguate the relevant expressions; and(8) outputting a mapping of the physical application metadata toenhanced physical application metadata, wherein the enhanced physicalapplication metadata comprises an expression for the physicalapplication metadata in a supported language.

In one embodiment, the method may further include performing neuralmachine translation on unknown application tokens in an unsupportedlanguage to translate the unknown application tokens to the supportedlanguage.

In one embodiment, the metadata may be received from a plurality of datasources.

In one embodiment, the parsing may eliminate special characters and/orremove stop words.

In one embodiment, the parsing may be based on common delimiters.

In one embodiment, the corpus may include a dictionary for the supportedlanguage, the reference data, etc.

In one embodiment, the reference data may include common industry andorganization terms.

In one embodiment, the language tokens may be applied to the relevantexpressions in the expanded polysemous tokens using a left andright-side encoding/context model.

According to another embodiment, a system for generalized structureddata discovery utilizing contextual metadata disambiguation via machinelearning techniques may include a plurality of data sources of physicalapplication metadata for an attribute, a database object, or a database;at least one organizational database comprising reference datacomprising a plurality of tokens and their associated abbreviations andacronyms; and a language processing engine comprising at least onecomputer processor in communication with the plurality of data sources.The language processing engine may receive the physical applicationmetadata from the data sources; receive the reference data from theorganizational database; parse the physical application metadata into aplurality of application tokens comprising known application tokens andunknown application tokens; identify unknown application tokens bycomparing the parsed application tokens to a corpus; performprobabilistic parsing on the unknown application tokens using thereference data; perform bi-directional encoding on polysemous unknownapplication tokens to expand the polysemous tokens to relevantexpressions using the reference data; apply language tokens to therelevant expressions in the expanded polysemous tokens to disambiguatethe relevant expressions; and output a mapping of the physicalapplication metadata to enhanced physical application metadata, whereinthe enhanced physical application metadata may include an expression forthe physical application metadata in a supported language.

In one embodiment, the language processing engine may perform neuralmachine translation on unknown application tokens in an unsupportedlanguage to translate the unknown application tokens to the supportedlanguage.

In one embodiment, the metadata may be received from a plurality of datasources.

In one embodiment, the parsing may eliminate special characters and/orremove stop words.

In one embodiment, the parsing may be based on common delimiters.

In one embodiment, the corpus may include a dictionary for the supportedlanguage. In one embodiment, the corpus may include reference data.

In one embodiment, the reference data may include common industry andorganization terms.

In one embodiment, the language tokens may be applied to the relevantexpressions in the expanded polysemous tokens using a left andright-side encoding/context model.

BRIEF DESCRIPTION OF THE DRAWINGS

For a more complete understanding of the present invention, the objectsand advantages thereof, reference is now made to the followingdescriptions taken in connection with the accompanying drawings inwhich:

FIG. 1 depicts a system for generalized structured data discoveryutilizing contextual metadata disambiguation via machine learningtechniques according to one embodiment; and

FIG. 2 illustrates a method for generalized structured data discoveryutilizing contextual metadata disambiguation via machine learningtechniques according to one embodiment.

DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS

Embodiments generally relate to systems and methods for generalizedstructured data discovery utilizing contextual metadata disambiguationvia machine learning techniques. To address the speed, scale, and scopeissues described above, embodiments are directed to a human-readabledictionary of structured data in a data store by collecting andprocessing metadata instead of profiling data values. Specifically,embodiments may collect attributes, database objects, and databases.Examples may include schemas, tables, column names, and associatedmetadata including data types and sizes. Benefits may include at leastsome of the following: (1) a substantially smaller dataset to work with(e.g., gigabytes instead of petabytes); (2) rapid collection of theentire estate allows frequent refreshes; and (3) small overhead ontarget data servers and minimal hardware in the central tool.

Embodiments make the following assumptions: (1) Developers used sometype of logic when naming database objects (e.g., relatively infrequentusage of object names like col1/col2); (2) data values in a column canbe ambiguous—a column called “account” may hold multiple account numbertypes which may look radically different (profilers relying on “regEx”rules get confused very quickly); (3) metadata labels concatenatedtogether can be reliably parsed into standardized tokens (e.g., “acctno”may be expanded to “Account Numbers”). A parsing and abbreviationexpansion step may be used; (4) while different development groups maycall the same object different names, the names may be standardized intoa canonical form as people do this every day in normal conversation(e.g., Client, Party, Customer, etc.); (5) issues like foreignlanguages, misspelling in metadata (e.g., different spellings for UK andUS English) may be mitigated; (6) abbreviations may be expanded, andambiguous abbreviations used in metadata labels may be resolved based onthe context in which an element sits (e.g., ‘CA_ID’ column could mean‘Client Advisor ID’ in one app and ‘Client Associate ID’ in anotherapplication)

Embodiments may “Englishify” physical metadata. This process may proposea human readable “phrase” for every piece of physical metadata,including database objects such as table and column names. This“Englishified” data assists with understanding the data and may serve asan input into statistical machine learning models to classify forsensitive data, entity inventories, and many other use cases.

Embodiments involve a data “pipeline” in which each step along thepipeline may apply specific NLP/Statistical or data techniques with theobjective of preparing the data input set for the next step. Thepipeline components may be de-coupled, recombined in different orders,etc. depending upon the input data or the specific use case.

Referring to FIG. 1 , a system for generalized structured data discoveryutilizing contextual metadata disambiguation via machine learningtechniques is disclosed according to one embodiment. System 100 mayinclude physical application metadata 110 from a plurality ofapplications 112 (e.g., application 1 112 ₁, application 2 112 ₂,application n 112 _(n), etc. Applications 112 may include computerapplications, databases, cloud spreadsheets, etc. Any suitable source ofmetadata may be used as is necessary and/or desired.

Physical application metadata 110 may be provided to language processingengine 125 that may be executed by data science platform server 120.Language processing engine 125 may include, for example, basic parsingcomponent 130, neural machine translation component 132, probabilisticparsing component 134, bi-directional encoding component 136, andlanguage tokenization component 138.

In one embodiment, reference data, such as lists of abbreviations,terms, etc. may be provided from application 112, other data sources(e.g., databases), etc. For example, the reference data may serve as aglossary for some terms and abbreviations.

In one embodiment, one or more organizational database 115 may storereference data.

Data from language processing engine 125 may be output as enrichedphysical application metadata including, for example, application 1English column names 142 ₁, application 2 English column names 142 ₂,application n English column names 142 _(n), etc.

For example, physical application metadata 110 for an application mayinclude a column named “CASERECEIVEDYTDCOUNT.” After being processed bynatural language processing engine 125, enhanced physical applicationmetadata 140 for this column name may become “CASE RECEIVED YEAR TO DATECOUNT.” As another example, “12mo_Total_Delq_V” may become “12 MONTHSTOTAL DELINQUENCY VIEW.” “ACCTNBR,” “Acct_NBR,” and “0_acct_No” may allbecome “ACCOUNT NUMBER.”

In one embodiment, the processing (e.g., normalization/standardization)at scale automatically, taking hundreds of permutations andcombinations. For example, there may be all CAPS without Delimiter,Camel Case with delimiters, Upper and Lower case with and withoutdelimiters along with abbreviations, etc. The language component triesto solve all these combinations across all the applications in anenterprise.

Although embodiments may refer to “Englishifiction” or “Englishify,” itshould be recognized that any suitable language and/or dialect may beused as a base language as is necessary and/or desired.

Referring to FIG. 2 , a method for generalized structured data discoveryutilizing contextual metadata disambiguation via machine learningtechniques is disclosed according to one embodiment.

In step 205, a language processing engine may receive physicalapplication metadata for databases, database objects, etc., such aslabels and business tokens and/or abbreviations from a plurality ofapplications. For example, the physical application metadata may includedata labels that may be used by the application. In one embodiment, themetadata may be column names for spreadsheets.

In one embodiment, the metadata may preferably come from a plurality ofdiverse sources, such as databases, cloud spreadsheets, applications,etc.

In embodiments, an application may be large enough that the process maybe run on the single application. For example, the process may run on alarge divisional data warehouse with millions of attributes. In general,however, better results may be achieved with a larger number ofknowledge in the form of tokens and abbreviation expansions.

In one embodiment, the applications may be sourced from within a singleorganization.

In embodiment, the language used by an organization may be a mix ofstandard English (American and international) or other languages,industry-specific abbreviations and terms, and organization-specificabbreviations and terms.

In one embodiment, the metadata may be received in any format and/orlanguage. In one embodiment, metadata that is in a language other thanEnglish (or any other default language) may be translated duringprocessing, discussed below.

In one embodiment, the physical application metadata may be cleansedand/or de-duplicated. The physical application metadata may be used topopulate a flat table representing the physical application metadatafrom a plurality of applications.

In one embodiment, the corpus/list of collected business tokens andassociated abbreviations may also be cleansed and de-duplicated. In oneembodiment, a list of tokens and business expansions may be collectedfrom units within the organization (e.g., lines of businesses, or LOBs).The list may include duplicate tokens but different expansions basedupon the usage in the respective LOBs. In essence, the list of tokensand expansions represent the organization's language.

In one embodiment, the originating LOB for the token may be tracked.

In embodiments, a token may be used to represent multiple values. Forexample, “EQ” may expand to “EQUITY” in some cases, and to “EQUAL” inothers. Thus, in embodiments, logic may be applied to choose the bestmatch based on context. For example, in the term “EQ_TRD”, “EQ” mostlikely expands to “EQUITY.” In other instances, the token that is mostlikely (e.g., more commonly used) may be selected. The logic that isused to expand “EQ” is part of the bi-directional encoding process,described in detail in step 225.

In step 210, the language processing engine may perform basic parsing onthe physical application metadata. In embodiments, the physicalapplication metadata labels may be normalized by eliminating any specialcharacters and removing the stop words (e.g., “is”, “of”, “and”, etc.).Embodiments may further break apart labels at common known delimiterslike “_”, “-”, etc. For example, “Account_Number” may become “AccountNumber.”

Embodiments may further compare the list of words for each supportedlanguage and return the list of tokens/words that are not recognized andwill require additional processing in the next component.

In one embodiment, a corpus, such as NLTK English Corpus, andorganizational tokens may be used as the look-up dictionary to determinewhether to proceed to the next step in the processing engine. Forexample, if the basic parsing has converted the term into Account Numberand as this Account Number is an English word in the look-up dictionary,it would not proceed to next step. For example, the term “ACCTCHG” willgo on to the next step because it is still not an English word.

As used herein, a “token phrase” is the collection of tokens, or words,that were parsed and expanded from a physical column or table label. Forexample, a physical column name like ACCTNUM may expand to a “tokenphrase” of ACCOUNT NUMBER

The output of this step is a set of token phrases that contain eitherknown tokens or unknown tokens.

Unknown tokens are sent to the next step in the pipeline for furtherprocessing.

In step 215, neural machine translation may be performed. In oneembodiment, this component algorithmically identifies whether aparticular token/word input is a non-English word and then translates itinto English word as necessary. In one embodiment, tokens/words may betranslated to other languages as necessary and/or desired.

In step 220, the language processing engine may perform probabilisticparsing on the physical application metadata. In embodiments, this steptakes the tokens from step 215 and determines if they can be parsedfurther. The key input for this is a corpus of common English tokensalong with organization and business specific words and acronyms. Ingeneral, it is not sufficient to simply use common English languagedictionaries; business specific words are important the accuracy of theexpansions.

In embodiments, using a recursive dynamic programming based statisticalmodel, a “cost vector” may be built based on the length of the inputtoken, the number of characters (including the digits count, if any) inthe word. The minimal cost may be determined by comparing each characterwith the words in the corpus.

In embodiments, the words in the corpus are important for theprobabilistic splitting of an ambiguous token as the corpus may becustomized for each business domain. For example, different corpuses canbe dynamically substituted for different business groups to furtherdrive accuracy.

The output of this step creates a higher percentage of tokens that arereal words in the business corpus, although there may be tokens that donot match. These token mismatches may be acronyms and abbreviations usedin the organization, business words not in the corpus, terms that cannotbe understood. The mismatches are provided to the step 225.

The output of the step 220 may be a set of individual, fine-tuned tokenphrases. For example, the column label CASERECEIVEDYTDAMOUNT may beexpanded to “CASE RECEIVED YTD AMOUNT” along with tokens that could havesingle expansion to multiple expansions. In this example, the token“YTD” requires additional processing.

The token “YTD” may be a “monosemous” token (i.e., one to one tokenexpansion) or a “polysemous” token (i.e., not one-to-one tokenexpansion). The language processing engine may determine whether a tokenis a monosemous token or a polysemous token by referring to a look-updictionary. For example, a corpus, such as NLTK English Corpus, andorganizational tokens, and any other suitable sources may be used as thelook-up dictionary, along with LOB-specific language represented astokens and its expansions.

If the algorithm determines that a specific token input is a monosemoustoken, then language engine may use highly-optimized and scalable logicto search, find and replace the monosemous tokens at scale. For example,if there is only one expansion for YTD to Year to Date in the corpus,then the algorithm may be applied to find and replace the YTD to Year toDate. So, the example of CASERECEIVEDYTDAMOUNT may be expanded finallyto “CASE RECEIVED YEAR TO DATE AMOUNT.”

If there are any polysemous tokens, the process proceeds to step 225.

In step 225, bi-directional encoding may be performed. For example, thelanguage processing engine may perform contextual abbreviation/acronymexpansion on any polysemous tokens. An example of a polysemous token is“CE,” as CE can be expanded to Credit Executive, Credit Exposure,Current Exposure, etc.

In embodiments, a customized corpus of organizational abbreviations andrelated expansion and/or text describing the owning application toprovide business context may be leveraged to identify the unknowntokens.

In one embodiment, the Sentence Bidirectional Encoder Representations(“sBERT”) technique may be used with pre-trained vector(s) from thesBERT to probabilistically select the right token expansion based uponthe context if the token is polysemous token. The process to capture thecontext is with the help of encoders by first defining the left sidecontext with a set of features and then we compare it with right-sidecontext for the token and its expansion. Cosine similarity afterencoding the vectors may be used, and the tokens may be ranked accordingto their cosine similarity score may be presented for the finalselection.

For example, the token “CE” may be parsed from a physical columncurr_total_ce. The CE token could mean “CREDIT EXPOSURE” or “CLIENTEXECUTIVE.” sBERT compares the application description phrase sourcedfrom the organization's application master database—“This applicationprocesses credit disputes and provides decisioning on the disputecharged.” sBERT thus determines that the expansion “CREDIT EXPOSURE” hasmore in common with the phrase than “CREDIT EXECUTIVE.” If, on the otherhand, the application description had been “EPIC is an Employeeproductivity, quality, and time off tracking tool for the credit area,”then sBERT would have noticed that EXECUTIVE and EMPLOYEE was a bettermatch and would have weighted the CREDIT EXECUTIVE expansion higher.

In step 230, language token(s) may be applied. In one embodiment, sBERTmay be used as framework to process ambiguous tokens by taking intoaccount input features like application or business descriptions. Inessence, the English phrase is presented on one side, and an applicationdescription on the other side.

To disambiguate, a “Left” and “Right” side encoding/context model may beused. The left side may be built with metadata, such as applicationdescription, line of business identifiers, table names, schema names,and other columns labels in the table along which have been expanded inthe previous steps. The right side may hold the list ambiguousabbreviations and potential expansions.

The contextual expansion of the abbreviation “ACCT,” which may be“Accounting” or “Account.”

For the right-side context, application XYZ may be a demand depositaccount-reporting application with an objective to collect the data fromup-stream systems to create the reports for the business managers in thefinance team. The Table ABC metadata is Column A, Column B, Column C,Column D, ACCT NBR.

Application ABC may be a financial Accounting System capturing theaccounting treatments for the expenses as per the FASB standardsCorporate. The Table DEF metadata includes Column A, Column B, Column C,Column D, ACCT NBR.

The left side context is as follows: ACCT Accounting Corporate, ACCTAccount Retail.

Using bi-directional text embedding with vectorization, the left sidecontext may be encoded into a “word embedding” by building a sentencetransformer. The algorithm automatically detects whether there existmultiple expansions in a same column, and may automatically createmultiple rows to convert it into the sentence transformers.

The right-side context also may be converted into an embedding using asentence transformer.

The transformer from the left side may be queried with the right-sidetransformer, and a distance metric may be used to compute thesimilarity. The algorithm may be coded with Euclidean and cosinesimilarity.

Each expansion may be scored based upon the sentence transformerscomparisons. For example, token ACCT could probably mean ‘ACCOUNT’ forapplication XYZ, but ‘ACCOUNTING’ for application ABC.

A non-limiting example is as follows. Tokens and expansions may becollected from each LOB and used as the source of truth for theprobabilistic token expansions if the token is Polysemous token. Forexample, CE is a token that may have four different expansions—CreditExposure, Current Exposure, Credit Executive and Client Executive. Theoccurrence of CE may be probabilistically expanded to any of the fourexpansions based upon its occurrence in each application. For example,CE in Application 123 and Table XYZ could mean Current Exposure and thesame CE in Application 456 and Table XYZ could mean Client Executive.The probabilistic scoring for each CE occurrence in each application isassigned based upon its context and relevance.

The highest scored token/abbreviation and its expansion may be selected.In the Table 1 below, there is an application with a table calledsecurities and the columns are below. The first highest scored expansionis considered in order to deliver it to the user for the feedback. Thisis depicted in Table 1, below:

TABLE I Physical_Columr Token_To_Expand Recommended_Expansion_BERTScore_BERT isin isin internatinoal securities 0.53 indentificationnumber curr_natural_ce ce credit exposure 0.49 curr_natural_ce ce creditexecutive 0.44 curr_natural_ce ce client executive 0.34 curr_natural_cece current exposure 0.30 curr_total_ce ce credit exposure 0.50curr_total_ce ce credit executive 0.46 curr_total_ce ce client executive0.35 curr_total_ce ce current exposure 0.30 cusip cusip committee foruniform securites 0.59 identification procedures wac wac weightedaverage coupon 0.49 wac wac wire authorization code 0.36 wac wacwieghted average cost 0.35 des des description 0.48 des des dataencryption standard 0.42 des des digital evolution strategy 0.41

The process/components may be iterated multiple times internally in thealgorithm to ensure the given input text have been fine-tuned andprocessed to an English word with very few abbreviations or ambiguoustokens where the business domain input is required.

In step 235, enhanced physical application metadata may be output. Inone embodiment, a table with a mapping between the physical applicationmetadata and the enhanced physical application metadata may be provided.In another embodiment, the physical application metadata may be replacedwith the enhanced physical application metadata

EXAMPLE. A non-limiting example is as follows. Physical applicationmetadata is collected from multiple applications, including column namessuch as “ACCOUNTNUMBER” and “ACCTNBR.”

Next, basic parsing is performed. “ACCOUNTNUMBER” is parsed to become“Account Number.” “ACCTNBR” cannot be parsed.

Next, neural machine translation is performed. It searches for thenon-English phrases and translates it into English phrase automaticallyand at scale. “Regra” in Portuguese can stand for “Rule” in English.

Next, “probabilistic splitting” of composite tokens into individualtokens is performed. “ACCTNBR” may be parsed to “ACCT” “NBR” even thoughthere are no clear delimiters. “ACCT” and “NBR” are not clean Englishwords, and are therefore further processed in the next step.

Next, bi-directional encoders are applied to contextually expand thetokens to its relevant expansions at each occurrence.

For example, the output is a human readable English name for thephysical application metadata. Table 2, below, is an example of thefinal output of the algorithm matching the original intention of thehuman developer/data modeler.

TABLE 2 Raw Text/Physical Column Name Clean Column Name ACCT_NBR ACCOUNTNUMBER CASERECEIVEDYTDCOUNT CASE RECEIVED YEAR TO DATE COUNT12mo_Total_Delq_V 12 MONTH TOTAL DELINQUENCY VIEW

Although several embodiments have been disclosed, it should berecognized that these embodiments are not mutually exclusive andfeatures from one may be used with others.

Hereinafter, general aspects of implementation of the systems andmethods of the invention will be described.

The system of the invention or portions of the system of the inventionmay be in the form of a “processing machine,” such as a general-purposecomputer, for example. As used herein, the term “processing machine” isto be understood to include at least one processor that uses at leastone memory. The at least one memory stores a set of instructions. Theinstructions may be either permanently or temporarily stored in thememory or memories of the processing machine. The processor executes theinstructions that are stored in the memory or memories in order toprocess data. The set of instructions may include various instructionsthat perform a particular task or tasks, such as those tasks describedabove. Such a set of instructions for performing a particular task maybe characterized as a program, software program, or simply software.

In one embodiment, the processing machine may be a specializedprocessor.

As noted above, the processing machine executes the instructions thatare stored in the memory or memories to process data. This processing ofdata may be in response to commands by a user or users of the processingmachine, in response to previous processing, in response to a request byanother processing machine and/or any other input, for example.

As noted above, the processing machine used to implement the inventionmay be a general-purpose computer. However, the processing machinedescribed above may also utilize any of a wide variety of othertechnologies including a special purpose computer, a computer systemincluding, for example, a microcomputer, mini-computer or mainframe, aprogrammed microprocessor, a micro-controller, a peripheral integratedcircuit element, a CSIC (Customer Specific Integrated Circuit) or ASIC(Application Specific Integrated Circuit) or other integrated circuit, alogic circuit, a digital signal processor, a programmable logic devicesuch as a FPGA, PLD, PLA or PAL, or any other device or arrangement ofdevices that is capable of implementing the steps of the processes ofthe invention.

The processing machine used to implement the invention may utilize asuitable operating system. Thus, embodiments of the invention mayinclude a processing machine running the iOS operating system, the OS Xoperating system, the Android operating system, the Microsoft Windows™operating systems, the Unix operating system, the Linux operatingsystem, the Xenix operating system, the IBM AIX™ operating system, theHewlett-Packard UX™ operating system, the Novell Netware™ operatingsystem, the Sun Microsystems Solaris™ operating system, the OS/2™operating system, the BeOS™ operating system, the Macintosh operatingsystem, the Apache operating system, an OpenStep™ operating system oranother operating system or platform.

It is appreciated that in order to practice the method of the inventionas described above, it is not necessary that the processors and/or thememories of the processing machine be physically located in the samegeographical place. That is, each of the processors and the memoriesused by the processing machine may be located in geographically distinctlocations and connected so as to communicate in any suitable manner.Additionally, it is appreciated that each of the processor and/or thememory may be composed of different physical pieces of equipment.Accordingly, it is not necessary that the processor be one single pieceof equipment in one location and that the memory be another single pieceof equipment in another location. That is, it is contemplated that theprocessor may be two pieces of equipment in two different physicallocations. The two distinct pieces of equipment may be connected in anysuitable manner. Additionally, the memory may include two or moreportions of memory in two or more physical locations.

To explain further, processing, as described above, is performed byvarious components and various memories. However, it is appreciated thatthe processing performed by two distinct components as described abovemay, in accordance with a further embodiment of the invention, beperformed by a single component. Further, the processing performed byone distinct component as described above may be performed by twodistinct components. In a similar manner, the memory storage performedby two distinct memory portions as described above may, in accordancewith a further embodiment of the invention, be performed by a singlememory portion. Further, the memory storage performed by one distinctmemory portion as described above may be performed by two memoryportions.

Further, various technologies may be used to provide communicationbetween the various processors and/or memories, as well as to allow theprocessors and/or the memories of the invention to communicate with anyother entity; i.e., so as to obtain further instructions or to accessand use remote memory stores, for example. Such technologies used toprovide such communication might include a network, the Internet,Intranet, Extranet, LAN, an Ethernet, wireless communication via celltower or satellite, or any client server system that providescommunication, for example. Such communications technologies may use anysuitable protocol such as TCP/IP, UDP, or OSI, for example.

As described above, a set of instructions may be used in the processingof the invention. The set of instructions may be in the form of aprogram or software. The software may be in the form of system softwareor application software, for example. The software might also be in theform of a collection of separate programs, a program module within alarger program, or a portion of a program module, for example. Thesoftware used might also include modular programming in the form ofobject oriented programming. The software tells the processing machinewhat to do with the data being processed.

Further, it is appreciated that the instructions or set of instructionsused in the implementation and operation of the invention may be in asuitable form such that the processing machine may read theinstructions. For example, the instructions that form a program may bein the form of a suitable programming language, which is converted tomachine language or object code to allow the processor or processors toread the instructions. That is, written lines of programming code orsource code, in a particular programming language, are converted tomachine language using a compiler, assembler or interpreter. The machinelanguage is binary coded machine instructions that are specific to aparticular type of processing machine, i.e., to a particular type ofcomputer, for example. The computer understands the machine language.

Any suitable programming language may be used in accordance with thevarious embodiments of the invention. Illustratively, the programminglanguage used may include assembly language, Ada, APL, Basic, C, C++,COBOL, dBase, Forth, Fortran, Java, Modula-2, Pascal, Prolog, REXX,Visual Basic, and/or JavaScript, for example. Further, it is notnecessary that a single type of instruction or single programminglanguage be utilized in conjunction with the operation of the system andmethod of the invention. Rather, any number of different programminglanguages may be utilized as is necessary and/or desirable.

Also, the instructions and/or data used in the practice of the inventionmay utilize any compression or encryption technique or algorithm, as maybe desired. An encryption module might be used to encrypt data. Further,files or other data may be decrypted using a suitable decryption module,for example.

As described above, the invention may illustratively be embodied in theform of a processing machine, including a computer or computer system,for example, that includes at least one memory. It is to be appreciatedthat the set of instructions, i.e., the software for example, thatenables the computer operating system to perform the operationsdescribed above may be contained on any of a wide variety of media ormedium, as desired. Further, the data that is processed by the set ofinstructions might also be contained on any of a wide variety of mediaor medium. That is, the particular medium, i.e., the memory in theprocessing machine, utilized to hold the set of instructions and/or thedata used in the invention may take on any of a variety of physicalforms or transmissions, for example. Illustratively, the medium may bein the form of paper, paper transparencies, a compact disk, a DVD, anintegrated circuit, a hard disk, a floppy disk, an optical disk, amagnetic tape, a RAM, a ROM, a PROM, an EPROM, a wire, a cable, a fiber,a communications channel, a satellite transmission, a memory card, a SIMcard, or other remote transmission, as well as any other medium orsource of data that may be read by the processors of the invention.

Further, the memory or memories used in the processing machine thatimplements the invention may be in any of a wide variety of forms toallow the memory to hold instructions, data, or other information, as isdesired. Thus, the memory might be in the form of a database to holddata. The database might use any desired arrangement of files such as aflat file arrangement or a relational database arrangement, for example.

In the system and method of the invention, a variety of “userinterfaces” may be utilized to allow a user to interface with theprocessing machine or machines that are used to implement the invention.As used herein, a user interface includes any hardware, software, orcombination of hardware and software used by the processing machine thatallows a user to interact with the processing machine. A user interfacemay be in the form of a dialogue screen for example. A user interfacemay also include any of a mouse, touch screen, keyboard, keypad, voicereader, voice recognizer, dialogue screen, menu box, list, checkbox,toggle switch, a pushbutton or any other device that allows a user toreceive information regarding the operation of the processing machine asit processes a set of instructions and/or provides the processingmachine with information. Accordingly, the user interface is any devicethat provides communication between a user and a processing machine. Theinformation provided by the user to the processing machine through theuser interface may be in the form of a command, a selection of data, orsome other input, for example.

As discussed above, a user interface is utilized by the processingmachine that performs a set of instructions such that the processingmachine processes data for a user. The user interface is typically usedby the processing machine for interacting with a user either to conveyinformation or receive information from the user. However, it should beappreciated that in accordance with some embodiments of the system andmethod of the invention, it is not necessary that a human user actuallyinteract with a user interface used by the processing machine of theinvention. Rather, it is also contemplated that the user interface ofthe invention might interact, i.e., convey and receive information, withanother processing machine, rather than a human user. Accordingly, theother processing machine might be characterized as a user. Further, itis contemplated that a user interface utilized in the system and methodof the invention may interact partially with another processing machineor processing machines, while also interacting partially with a humanuser.

It will be readily understood by those persons skilled in the art thatthe present invention is susceptible to broad utility and application.Many embodiments and adaptations of the present invention other thanthose herein described, as well as many variations, modifications andequivalent arrangements, will be apparent from or reasonably suggestedby the present invention and foregoing description thereof, withoutdeparting from the substance or scope of the invention.

Accordingly, while the present invention has been described here indetail in relation to its exemplary embodiments, it is to be understoodthat this disclosure is only illustrative and exemplary of the presentinvention and is made to provide an enabling disclosure of theinvention. Accordingly, the foregoing disclosure is not intended to beconstrued or to limit the present invention or otherwise to exclude anyother such embodiments, adaptations, variations, modifications orequivalent arrangements.

1-18. (canceled)
 19. A method for generalized structured data discoveryutilizing contextual metadata disambiguation via machine learningtechniques, comprising: in an information processing apparatuscomprising at least one computer processor: receiving physicalapplication metadata from one or more data sources for an attribute, adatabase object, or a database; receiving reference data comprising aplurality of tokens and their associated abbreviations and acronyms;parsing the physical application metadata into a plurality ofapplication tokens comprising known application tokens and unknownapplication tokens; identifying unknown application tokens by comparingthe parsed application tokens to a corpus; performing probabilisticparsing on the unknown application tokens using the reference dataresulting in token phrases; identifying monosemous tokens in the tokenphrases using a look-up dictionary; replacing the monosemous tokens withtheir expansions from the look-up dictionary; and outputting a mappingof the physical application metadata to enhanced physical applicationmetadata, wherein the enhanced physical application metadata comprisesan expression for the physical application metadata comprising theexpansions for monosemous tokens in a supported language.
 20. The methodof claim 19, further comprising: performing neural machine translationon unknown application tokens in an unsupported language to translatethe unknown application tokens to the supported language.
 21. The methodof claim 19, wherein the metadata is received from a plurality of datasources.
 22. The method of claim 19, wherein the parsing performs atleast one of the following: (1) eliminates special characters; and (2)removes stop words.
 23. The method of claim 19, wherein the parsing isbased on common delimiters.
 24. The method of claim 19, wherein thecorpus comprises a dictionary for the supported language.
 25. The methodof claim 19, wherein the corpus comprises the reference data.
 26. Themethod of claim 19, wherein the reference data comprises common industryand organization terms.
 27. A system for generalized structured datadiscovery utilizing contextual metadata disambiguation via machinelearning techniques, comprising: a plurality of data sources of physicalapplication metadata for an attribute, a database object, or a database;at least one organizational database comprising reference datacomprising a plurality of tokens and their associated abbreviations andacronyms; and a language processing engine comprising at least onecomputer processor in communication with the plurality of data sources;wherein: the language processing engine receives the physicalapplication metadata from the data sources; the language processingengine receives the reference data from the organizational database; thelanguage processing engine parses the physical application metadata intoa plurality of application tokens comprising known application tokensand unknown application tokens; the language processing engineidentifies unknown application tokens by comparing the parsedapplication tokens to a corpus; the language processing engine performsprobabilistic parsing on the unknown application tokens using thereference data resulting in token phrases; the language processingengine identifies monosemous tokens in the token phrases using a look-updictionary; the language processing engine replaces the monosemoustokens with their expansions from the look-up dictionary; and thelanguage processing engine outputs a mapping of the physical applicationmetadata to enhanced physical application metadata, wherein the enhancedphysical application metadata comprises an expression for the physicalapplication metadata comprising the expansions for monosemous tokens ina supported language.
 28. The system of claim 27, wherein the languageprocessing engine further performs neural machine translation on unknownapplication tokens in an unsupported language to translate the unknownapplication tokens to the supported language.
 29. The system of claim27, wherein the metadata is received from a plurality of data sources.30. The system of claim 27, wherein the parsing performs at least one ofthe following: (1) eliminates special characters; and (2) removes stopwords.
 31. The system of claim 27, wherein the parsing is based oncommon delimiters.
 32. The system of claim 27, wherein the corpuscomprises a dictionary for the supported language.
 33. The system ofclaim 27, wherein the corpus comprises the reference data.
 34. Thesystem of claim 27, wherein the reference data comprises common industryand organization terms.